package com.starmark.sys.org.atomic.mapper;


import com.starmark.core.framework.base.SuperMapper;
import com.starmark.sys.org.api.dto.OrgElementDto;
import com.starmark.sys.org.atomic.entity.SysOrgDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author starmark
 * @since 2018年3月3日 下午7:22:33
 */
@Mapper
public interface SysOrgDeptMapper extends SuperMapper<SysOrgDept> {
    /**
     * 通过关键字查找组织信息
     *
     * @param searchKey 关键字
     * @param pageSize  分页编码
     * @return 部门信息
     */
    List<OrgElementDto> getOrgTreeBySearchkey(@Param("searchKey") String searchKey, @Param("pageSize") int pageSize);


    /**
     * 通过父节点，查找相关信息
     *
     * @param id 部门ID
     * @return 下级部门信息
     */
    List<OrgElementDto> getOrgTreeById(@Param("id") String id);


    /**
     * 更新子部门下的层级ID
     * @param oldLevelId 旧层级ID
     * @param newLevelId 新层级ID
     * @param updateTime 更新时间，
     * @param updateBy 更新人员
     */
    void updateChildDeptLevel(@Param("oldLevelId") String oldLevelId,@Param("newLevelId") String newLevelId,
                              @Param("updateTime")  long updateTime,@Param("updateBy")  String updateBy);

}